Search Results

Documents authored by Sunshine, Joshua


Document
Gradual Program Analysis for Null Pointers

Authors: Sam Estep, Jenna Wise, Jonathan Aldrich, Éric Tanter, Johannes Bader, and Joshua Sunshine

Published in: LIPIcs, Volume 194, 35th European Conference on Object-Oriented Programming (ECOOP 2021)


Abstract
Static analysis tools typically address the problem of excessive false positives by requiring programmers to explicitly annotate their code. However, when faced with incomplete annotations, many analysis tools are either too conservative, yielding false positives, or too optimistic, resulting in unsound analysis results. In order to flexibly and soundly deal with partially-annotated programs, we propose to build upon and adapt the gradual typing approach to abstract-interpretation-based program analyses. Specifically, we focus on null-pointer analysis and demonstrate that a gradual null-pointer analysis hits a sweet spot, by gracefully applying static analysis where possible and relying on dynamic checks where necessary for soundness. In addition to formalizing a gradual null-pointer analysis for a core imperative language, we build a prototype using the Infer static analysis framework, and present preliminary evidence that the gradual null-pointer analysis reduces false positives compared to two existing null-pointer checkers for Infer. Further, we discuss ways in which the gradualization approach used to derive the gradual analysis from its static counterpart can be extended to support more domains. This work thus provides a basis for future analysis tools that can smoothly navigate the tradeoff between human effort and run-time overhead to reduce the number of reported false positives.

Cite as

Sam Estep, Jenna Wise, Jonathan Aldrich, Éric Tanter, Johannes Bader, and Joshua Sunshine. Gradual Program Analysis for Null Pointers. In 35th European Conference on Object-Oriented Programming (ECOOP 2021). Leibniz International Proceedings in Informatics (LIPIcs), Volume 194, pp. 3:1-3:25, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2021)


Copy BibTex To Clipboard

@InProceedings{estep_et_al:LIPIcs.ECOOP.2021.3,
  author =	{Estep, Sam and Wise, Jenna and Aldrich, Jonathan and Tanter, \'{E}ric and Bader, Johannes and Sunshine, Joshua},
  title =	{{Gradual Program Analysis for Null Pointers}},
  booktitle =	{35th European Conference on Object-Oriented Programming (ECOOP 2021)},
  pages =	{3:1--3:25},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-190-0},
  ISSN =	{1868-8969},
  year =	{2021},
  volume =	{194},
  editor =	{M{\o}ller, Anders and Sridharan, Manu},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2021.3},
  URN =		{urn:nbn:de:0030-drops-140469},
  doi =		{10.4230/LIPIcs.ECOOP.2021.3},
  annote =	{Keywords: gradual typing, gradual verification, dataflow analysis}
}
Document
Complete Volume
OASIcs, Vol. 76, PLATEAU 2019, Complete Volume

Authors: Sarah Chasins, Elena L. Glassman, and Joshua Sunshine

Published in: OASIcs, Volume 76, 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)


Abstract
OASIcs, Vol. 76, PLATEAU 2019, Complete Volume

Cite as

10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019). Open Access Series in Informatics (OASIcs), Volume 76, pp. 1-68, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Copy BibTex To Clipboard

@Proceedings{chasins_et_al:OASIcs.PLATEAU.2019,
  title =	{{OASIcs, Vol. 76, PLATEAU 2019, Complete Volume}},
  booktitle =	{10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)},
  pages =	{1--68},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-135-1},
  ISSN =	{2190-6807},
  year =	{2020},
  volume =	{76},
  editor =	{Chasins, Sarah and Glassman, Elena L. and Sunshine, Joshua},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.PLATEAU.2019},
  URN =		{urn:nbn:de:0030-drops-119533},
  doi =		{10.4230/OASIcs.PLATEAU.2019},
  annote =	{Keywords: OASIcs, Vol. 76, PLATEAU 2019, Complete Volume}
}
Document
Front Matter
Front Matter, Table of Contents, Preface, Conference Organization

Authors: Sarah Chasins, Elena L. Glassman, and Joshua Sunshine

Published in: OASIcs, Volume 76, 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)


Abstract
Front Matter, Table of Contents, Preface, Conference Organization

Cite as

10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019). Open Access Series in Informatics (OASIcs), Volume 76, pp. 0:i-0:viii, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Copy BibTex To Clipboard

@InProceedings{chasins_et_al:OASIcs.PLATEAU.2019.0,
  author =	{Chasins, Sarah and Glassman, Elena L. and Sunshine, Joshua},
  title =	{{Front Matter, Table of Contents, Preface, Conference Organization}},
  booktitle =	{10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)},
  pages =	{0:i--0:viii},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-135-1},
  ISSN =	{2190-6807},
  year =	{2020},
  volume =	{76},
  editor =	{Chasins, Sarah and Glassman, Elena L. and Sunshine, Joshua},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.PLATEAU.2019.0},
  URN =		{urn:nbn:de:0030-drops-119541},
  doi =		{10.4230/OASIcs.PLATEAU.2019.0},
  annote =	{Keywords: Front Matter, Table of Contents, Preface, Conference Organization}
}
Document
A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language

Authors: Gauri Kambhatla, Michael Coblenz, Reed Oei, Joshua Sunshine, Jonathan Aldrich, and Brad A. Myers

Published in: OASIcs, Volume 76, 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)


Abstract
Although blockchains have been proposed for building systems that execute critical transactions, security vulnerabilities have plagued programs that are deployed on blockchain systems. The programming language Obsidian was developed with the purpose of statically preventing some of the more common of these security risks, specifically the loss of resources and improper manipulation of objects. The question then is whether Obsidian’s novel features impact the usability of the language. In this paper, we begin to evaluate Obsidian with respect to usability, and develop materials for a quantitative user study through a sequence of pilot studies. Specifically, our goal was to assess a) potential usability problems of Obsidian, b) the effectiveness of a tutorial for participants to learn the language, and c) the design of programming tasks to evaluate performance using the language. Our preliminary results tentatively suggest that the complexity of Obsidian’s features do not hinder usability, although these results will be validated in the quantitative study. We also observed the following factors as being important in a given programmer’s ability to learn Obsidian: a) integrating very frequent opportunities for practice of the material - e.g., after less than a page of material at a time, and b) previous programming experience and self-efficacy.

Cite as

Gauri Kambhatla, Michael Coblenz, Reed Oei, Joshua Sunshine, Jonathan Aldrich, and Brad A. Myers. A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language. In 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019). Open Access Series in Informatics (OASIcs), Volume 76, pp. 2:1-2:11, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Copy BibTex To Clipboard

@InProceedings{kambhatla_et_al:OASIcs.PLATEAU.2019.2,
  author =	{Kambhatla, Gauri and Coblenz, Michael and Oei, Reed and Sunshine, Joshua and Aldrich, Jonathan and Myers, Brad A.},
  title =	{{A Pilot Study of the Safety and Usability of the Obsidian Blockchain Programming Language}},
  booktitle =	{10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)},
  pages =	{2:1--2:11},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-135-1},
  ISSN =	{2190-6807},
  year =	{2020},
  volume =	{76},
  editor =	{Chasins, Sarah and Glassman, Elena L. and Sunshine, Joshua},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.PLATEAU.2019.2},
  URN =		{urn:nbn:de:0030-drops-119564},
  doi =		{10.4230/OASIcs.PLATEAU.2019.2},
  annote =	{Keywords: smart contracts, programming language user study, language usability}
}
Document
Designing Declarative Language Tutorials: A Guided and Individualized Approach

Authors: Anael Kuperwajs Cohen, Wode Ni, and Joshua Sunshine

Published in: OASIcs, Volume 76, 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)


Abstract
The ability to declare what a program should include rather than how these features should be implemented makes declarative languages very useful in many visual output programs. The wide-ranging uses of these programs, in domains ranging from architecture to web programming to data visualization, encourages us to find an effective method to teach them. Traditional tutorial systems are usually non-interactive and have a gap between the learning and application. This can leave the user frustrated without a way to move forward in the learning process. A general lack of guidance can lead the student down an incorrect path. To prevent these difficulties, we propose a guided tour followed by novel question types that both direct the student’s learning and creates a focused environment to practice individual skills. Lastly, we propose a study to test the hypothesis that this tutorial is quicker to complete and results in a greater understanding of the declarative language.

Cite as

Anael Kuperwajs Cohen, Wode Ni, and Joshua Sunshine. Designing Declarative Language Tutorials: A Guided and Individualized Approach. In 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019). Open Access Series in Informatics (OASIcs), Volume 76, pp. 4:1-4:6, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Copy BibTex To Clipboard

@InProceedings{cohen_et_al:OASIcs.PLATEAU.2019.4,
  author =	{Cohen, Anael Kuperwajs and Ni, Wode and Sunshine, Joshua},
  title =	{{Designing Declarative Language Tutorials: A Guided and Individualized Approach}},
  booktitle =	{10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)},
  pages =	{4:1--4:6},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-135-1},
  ISSN =	{2190-6807},
  year =	{2020},
  volume =	{76},
  editor =	{Chasins, Sarah and Glassman, Elena L. and Sunshine, Joshua},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.PLATEAU.2019.4},
  URN =		{urn:nbn:de:0030-drops-119589},
  doi =		{10.4230/OASIcs.PLATEAU.2019.4},
  annote =	{Keywords: Declarative Programming, Programming Language Tutorial, Visualizations}
}
Document
Complete Volume
OASIcs, Volume 67, PLATEAU'18, Complete Volume

Authors: Titus Barik, Joshua Sunshine, and Sarah Chasins

Published in: OASIcs, Volume 67, 9th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2018)


Abstract
OASIcs, Volume 67, PLATEAU'18, Complete Volume

Cite as

9th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2018). Open Access Series in Informatics (OASIcs), Volume 67, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2019)


Copy BibTex To Clipboard

@Proceedings{barik_et_al:OASIcs.PLATEAU.2018,
  title =	{{OASIcs, Volume 67, PLATEAU'18, Complete Volume}},
  booktitle =	{9th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2018)},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-091-0},
  ISSN =	{2190-6807},
  year =	{2019},
  volume =	{67},
  editor =	{Barik, Titus and Sunshine, Joshua and Chasins, Sarah},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.PLATEAU.2018},
  URN =		{urn:nbn:de:0030-drops-102301},
  doi =		{10.4230/OASIcs.PLATEAU.2018},
  annote =	{Keywords: Software and its engineering, Software notations and tools, Human-centered computing, Human computer interaction (HCI)}
}
Document
Front Matter
Front Matter, Table of Contents, Preface, Conference Organization

Authors: Titus Barik, Joshua Sunshine, and Sarah Chasins

Published in: OASIcs, Volume 67, 9th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2018)


Abstract
Front Matter, Table of Contents, Preface, Conference Organization

Cite as

9th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2018). Open Access Series in Informatics (OASIcs), Volume 67, pp. 0:i-0:x, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2019)


Copy BibTex To Clipboard

@InProceedings{barik_et_al:OASIcs.PLATEAU.2018.0,
  author =	{Barik, Titus and Sunshine, Joshua and Chasins, Sarah},
  title =	{{Front Matter, Table of Contents, Preface, Conference Organization}},
  booktitle =	{9th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2018)},
  pages =	{0:i--0:x},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-091-0},
  ISSN =	{2190-6807},
  year =	{2019},
  volume =	{67},
  editor =	{Barik, Titus and Sunshine, Joshua and Chasins, Sarah},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/OASIcs.PLATEAU.2018.0},
  URN =		{urn:nbn:de:0030-drops-101938},
  doi =		{10.4230/OASIcs.PLATEAU.2018.0},
  annote =	{Keywords: Front Matter, Table of Contents, Preface, Conference Organization}
}
Document
Toward Semantic Foundations for Program Editors

Authors: Cyrus Omar, Ian Voysey, Michael Hilton, Joshua Sunshine, Claire Le Goues, Jonathan Aldrich, and Matthew A. Hammer

Published in: LIPIcs, Volume 71, 2nd Summit on Advances in Programming Languages (SNAPL 2017)


Abstract
Programming language definitions assign formal meaning to complete programs. Programmers, however, spend a substantial amount of time interacting with incomplete programs - programs with holes, type inconsistencies and binding inconsistencies - using tools like program editors and live programming environments (which interleave editing and evaluation). Semanticists have done comparatively little to formally characterize (1) the static and dynamic semantics of incomplete programs; (2) the actions available to programmers as they edit and inspect incomplete programs; and (3) the behavior of editor services that suggest likely edit actions to the programmer based on semantic information extracted from the incomplete program being edited, and from programs that the system has encountered in the past. This paper serves as a vision statement for a research program that seeks to develop these "missing" semantic foundations. Our hope is that these contributions, which will take the form of a series of simple formal calculi equipped with a tractable metatheory, will guide the design of a variety of current and future interactive programming tools, much as various lambda calculi have guided modern language designs. Our own research will apply these principles in the design of Hazel, an experimental live lab notebook programming environment designed for data science tasks. We plan to co-design the Hazel language with the editor so that we can explore concepts such as edit-time semantic conflict resolution mechanisms and mechanisms that allow library providers to install library-specific editor services.

Cite as

Cyrus Omar, Ian Voysey, Michael Hilton, Joshua Sunshine, Claire Le Goues, Jonathan Aldrich, and Matthew A. Hammer. Toward Semantic Foundations for Program Editors. In 2nd Summit on Advances in Programming Languages (SNAPL 2017). Leibniz International Proceedings in Informatics (LIPIcs), Volume 71, pp. 11:1-11:12, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2017)


Copy BibTex To Clipboard

@InProceedings{omar_et_al:LIPIcs.SNAPL.2017.11,
  author =	{Omar, Cyrus and Voysey, Ian and Hilton, Michael and Sunshine, Joshua and Le Goues, Claire and Aldrich, Jonathan and Hammer, Matthew A.},
  title =	{{Toward Semantic Foundations for Program Editors}},
  booktitle =	{2nd Summit on Advances in Programming Languages (SNAPL 2017)},
  pages =	{11:1--11:12},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-032-3},
  ISSN =	{1868-8969},
  year =	{2017},
  volume =	{71},
  editor =	{Lerner, Benjamin S. and Bod{\'\i}k, Rastislav and Krishnamurthi, Shriram},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops-dev.dagstuhl.de/entities/document/10.4230/LIPIcs.SNAPL.2017.11},
  URN =		{urn:nbn:de:0030-drops-71273},
  doi =		{10.4230/LIPIcs.SNAPL.2017.11},
  annote =	{Keywords: program editors, type systems, live programming, program prediction}
}
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail